#ifndef VERTICALSTAIR_H
#define VERTICALSTAIR_H

#include "Stair.h"
#include "Sprite.h"
#include "Animator.h"
#include "Platform.h"
#include "Timer.h"
#include <string>

class VerticalStair : public Stair {
private:
	typedef std::pair<Sprite*, Stair*> AnimatorData;

	static void UpStepCompleted (Animator*, void* closure);
	static void DownStepCompleted (Animator*, void* closure);
public:
	VerticalStair(Platform *_top, Platform *_bottom, const std::vector<Step*> &_steps,
		MovingPathAnimation *_up, MovingPathAnimation *_down, MovingPathAnimator *_animator):
		Stair((void*)_top, (void*)_bottom, _steps, _up, _down, _animator, "VerticalStair") {}; 
	~VerticalStair(void);
	
	virtual void AlignUp (Sprite* s);
	
	virtual void AlignDown (Sprite* s);

	virtual void AnimateUp (Sprite* s);
	
	virtual void AnimateDown (Sprite* s);
};

#endif